package com.chb.service;

import com.chb.model.vo.InventoryDataVo;
import com.chb.model.vo.InventoryGoodsVo;
import com.chb.model.vo.InventoryVo;
import com.chb.model.vo.Result;

import java.util.Date;
import java.util.List;

/**
 * @author ：njh
 * @date ：Created in 2023/10/10 10:59
 * @description：盘点业务层
 * @modified By：
 * @version:
 */
public interface InventoryService {

    /**
     * @param
     * @return inventoryVoList
     * @create by: njh
     * @description: 检查state值
     * @create time: 2023/10/11 10:23
     */
    public Result checkState();

    /**
     * @param inventoryVoList
     * @return inventoryVoList
     * @create by: njh
     * @description: 添加盘点信息
     * @create time: 2023/10/11 10:23
     */
    public Result addInventory(List<InventoryVo> inventoryVoList);

    /**
     * @param
     * @return InventoryDataVo
     * @create by: njh
     * @description: 查询所有的盘点信息
     * @create time: 2023/10/11 10:23
     */
    public Result findAllInventory(Integer currentPage, Integer pageSize);

    /**
     * @param
     * @return InventoryDataVo
     * @create by: njh
     * @description: 查询所有审核通过的盘点信息
     * @create time: 2023/10/11 10:23
     */
    public List<InventoryDataVo> findAllInventory(Integer state);

    /**
     * @param
     * @return InventoryDataVo
     * @create by: njh
     * @description: 查询所有审核通过的盘点信息
     * @create time: 2023/10/11 10:23
     */
    public Result findAllInventory(Integer currentPage, Integer pageSize, String startTime, String endTime, Integer branchid, Integer state);

    /**
     * @param startTime,endTime,branchid,state
     * @return
     * @create by: njh
     * @description: 根据条件查询相应的盘点信息
     * @create time: 2023/10/11 17:04
     */
    public Result searchInventoryByBranchId(Integer currentPage, Integer pageSize, String startTime, String endTime, Integer branchid, Integer state);

    /**
     * @param invenid
     * @return InventoryGoodsVo
     * @create by: njh
     * @description: 根据盘点id查询盘点的商品信息
     * @create time: 2023/10/11 10:23
     */
    public Result findInventoryGoodsByInventoryID(Integer currentPage, Integer pageSize, Integer invenid);

    /**
     * @param inventoryDataVo
     * @return inventoryDataVo
     * @create by: njh
     * @description: 审核不通过，添加驳回信息
     * @create time: 2023/10/11 10:23
     */
    public Integer addReject(InventoryDataVo inventoryDataVo);

    /**
     * @param inventoryDataVo
     * @return Integer
     * @create by: njh
     * @description: 审核通过，更新审核信息
     * @create time: 2023/10/11 10:23
     */
    public Integer addPass(InventoryDataVo inventoryDataVo);

    /**
     * @param inventoryGoodsVo
     * @return Integer
     * @create by: njh
     * @description: 审核通过，获取商品数量和盘点数量，对商品数量进行修改
     * @create time: 2023/10/11 10:23
     */
    public Integer updPassCount(List<InventoryGoodsVo> inventoryGoodsVo);
}